import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

public class IODemo9 {
    // 字符流的写操作
    public static void main(String[] args) {
        try (Writer writer = new FileWriter("d:/test.txt")){
            writer.write("hello world"); // 这里面的write 提供的版本就多了
            // 一次可以写一个字符
            // 一次可以写一个字符数组
            // 一次可以指定一个字符数组的写法
            // 也可以写一个字符串

            // 手动刷新缓冲区
            writer.flush();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 再次打开文件就会发现变成hello world 其该做也和字节流的原理一样,需要先清空原来的

        //  writer.write("hello world"); 像这样的写操作 其实先要写到缓冲区里面 (缓冲区存在这很多形态. 咱们自己的代码里就可以有缓冲区;
        //  标准库里也可以有缓冲区, 操作系统内核里也可以有缓冲区等等)
        // 当写操作执行完了, 内容可能在缓冲区里,还没有真的进入硬盘
        // close 操作就会触发缓冲区的刷新操作(刷新操作 就是把缓冲区里的内容写到硬盘里面)
        // (此处的刷新 是指"冲刷 flush" , 不是我们平常认为的刷新 "refresh" ,flush方法可以进行刷新缓冲区)
    }
}
